-- ------------------------------------------
-- Funciones adicionales "helpers" (no se piden en la enrtega)

-- Goles( idPartido, 'visita' o 'local' )
-- Entrega el numero de goles de equipo visita/local en un cierto partido
-- ------------------------------------------

CREATE OR REPLACE FUNCTION Goles(param_idPartido partidos.idPartido%TYPE, param_visitaLocal varchar(10) )
RETURNS int AS $$

        DECLARE
                m_goles int;
                idEquipo partidos.idEquipoLocal%TYPE;

	BEGIN

                -- Seleccionar equipo
                IF (param_visitaLocal = 'visita') THEN
                    SELECT INTO idEquipo idEquipoVisita FROM partidos WHERE idPartido = param_idPartido;

                ELSIF (param_visitaLocal = 'local') THEN
                    SELECT INTO idEquipo idEquipoLocal FROM partidos WHERE idPartido = param_idPartido;

                ELSE
                    RAISE EXCEPTION 'El segundo parametro debe ser visita o local';
                END IF;

                --Seleccionar nro de goles
                SELECT INTO m_goles count( goles.idEquipo )
                FROM goles
                WHERE goles.idPartido = param_idPartido AND goles.idEquipo = idEquipo
                GROUP BY goles.idEquipo;

		RETURN m_goles;
	END;

$$ LANGUAGE plpgsql